package ajsynchro;

importsymbol ajsynchro.Signal;
importsymbol ajsynchro.Await;

public syntaxclass AJSynchroMethod {
		
	@grammar extends advice_declaration {
		AJSynchroMethod -> "synchronize" "(" m = method_header ")" 
		                    "with" id = simple_name
		                    "{" ab = [AJBefore] aa = [AJAfter] "}";
	}
	
	public static syntaxclass AJBefore {
		@grammar using Signal, Await {
			AJBefore -> "Before" ":" b = block_statements;
		}
	}

	public static syntaxclass AJAfter {
		@grammar using Signal, Await {
			AJAfter -> "After" ":" b = block_statements;
		}
	}
	
}
